Subdivision surface-based geometric modeling system

ABSTRACT

A method for surface modeling of images to produce realistic images or to provide simulations with accurate surface information is provided. More particularly, the present invention relates to a new subdivision depth computation technique and to an improved label-driven adaptive subdivision technique for use in Catmull-Clark subdivision surface modeling systems. The method comprises computing a subdivision depth to determine the number of recursive subdivisions which may be performed on a control mesh to generate a plurality of finer mesh elements while preserving a predetermined error tolerance, and using the computed subdivision depth to construct an adaptively refined mesh that is substantially similar to the control mesh within the predetermined error tolerance. Limit control surfaces with and without extraordinary vertices may be analysed using the method of the invention. In another aspect, a software program for accomplishing the method of the present invention is provided.

This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/388,637 filed Jun. 14, 2002. This invention was made with Government support under NSF Grant No. DMI-9912069. The Government may have certain rights in this invention.

TECHNICAL FIELD

The present invention relates to the art of surface modeling of images to produce realistic images or to provide simulations with accurate surface information. More particularly, the present invention relates to a new subdivision depth computation technique and to an improved label-driven adaptive subdivision technique for use in Catmull-Clark subdivision surface modeling systems.

BACKGROUND OF THE INVENTION

Subdivision surfaces have become popular recently in graphical modeling, animation, and CAD/CAM because of their stability in numerical computation, simplicity in coding, and most importantly their capability in modeling/representing complex shape of arbitrary topology. Given a control mesh and a set of mesh refining rules, a user may obtain a limit surface by recursively cutting off corners of the control mesh. The limit surface is referred to as a subdivision surface because the corner cutting/mesh refining process is a generalization of the uniform B-spline surface subdivision technique. Subdivision surfaces include uniform B-spline surfaces and piecewise Bézier surfaces as special cases. It is also known in the art that subdivision surfaces may include non-uniform B-spline surfaces and NURBS surfaces as special cases. Subdivision surfaces can model/represent complex shape of arbitrary topology because there is no limit on the shape and topology of the control mesh of a subdivision surface. It is also known that subdivision surfaces cover both parametric forms and discrete forms. Since parametric forms are useful for design and representation and discrete forms are useful for machining and tessellation (including FE mesh generation), a representation is provided which is suitable for all graphics and CAD/CAM applications.

The prior art in subdivision surfaces has focused on the areas of surface trimming, boolean operations, and mesh editing. However, there are presently few suitable methods for dealing with precision/error control in subdivision surfaces, and in “smart” tessellation of subdivision surfaces. Given a predetermined error tolerance, it is necessary to determine how many levels of recursive Catmull-Clark subdivision should be performed on the initial control mesh such that the distance between the resultant control mesh and the limit surface is less than the predetermined error tolerance. It is also desirable to improve efficiency of tessellation based applications and data communication by generating a refined mesh within the required approximation precision of the limit surface with significantly fewer faces than the uniformly refined mesh. To date, efforts to reduce the number of faces in a mesh have focused on: (1) mesh simplification, i.e. removing over-sampled vertices and producing approximate meshes with various levels of detail; (2) approximating the limit surface by known surfaces, such as displaced subdivision surface or NURBS patches; and (3) application of adaptive refinement schemes to subdivision surfaces.

Accordingly, a need is identified for an improved method for subdivision surface modeling. The subdivision depth computation technique provided by the present invention provides precision/error control tools in subdivision surface trimming, finite element mesh generation, boolean operations, and surface tessellation for rendering processes. The label-driven adaptive subdivision technique of the invention improves efficiency of the above by generating an adaptively refined mesh that is within the required approximation precision of the limit surface, but with significantly fewer quadrilateral faces than prior art uniformly refined mesh techniques. The invention provides a subdivision depth computation technique for a Catmull-Clark subdivision surface (CCSS) patch, and provides also a label-driven adaptive subdivision technique for a CCSS based on subdivision depths calculated for its patches. A novel greedy algorithm is used to eliminate illegal vertex labels in the initial mesh.

Advantageously, the methods of the present invention provide a novel and efficient error control tool which is suitable for all tessellation-based applications of subdivision surfaces, and significantly reduce the number of faces in an adaptively refined quadrilateral mesh in a few subdivision steps, thereby improving efficiency of all tessellation-based applications and data communication of subdivision surfaces.

SUMMARY OF THE INVENTION

In accordance with a first aspect of the invention, a method for modeling or representing a surface or shape having an arbitrary topology which may be represented by a control mesh comprising at least one discrete Catmull-Clark Subdivision Surface (CCSS) patch defined by a set of control points is provided, comprising the steps of computing a subdivision depth determining the number of recursive subdivisions which may be performed on the control mesh to generate a plurality of finer mesh elements, whereby a distance between each finer mesh element and the corresponding limit surface patch is less than a predetermined error tolerance ε. Next is the step of using the computed subdivision depth to construct an adaptively refined mesh that is substantially similar to the control mesh within the range of the predetermined error tolerance ε. Each face of the recursively subdivided control mesh is a quadrilateral, and may contain up to one extraordinary vertex.

The method of the present invention is suitable for computing the subdivision depth, or the number of recursive subdivisions which may be performed on a surface patch while maintaining the predetermined error tolerance, for both surface patches which are not adjacent to an extraordinary vertex, and for surface patches which are adjacent to an extraordinary vertex.

For surface patches which are not adjacent to an extraordinary vertex, it will be appreciated that the surface patch will be a uniform bicubic B-spline surface patch which may be designated as S(u,v). In the absence of an extraordinary vertex, the next step is calculating a subdivision depth k defined as k levels of recursive subdivision performed on the control points of the surface patch S(u,v) to generate a level k control mesh, wherein k is defined as k≧┌log₄ (M⁰/3ε) ┐, where M⁰ is the second order norm of S(u,v) and the distance between S(u,v) and the level k control mesh is less than ε.

If an extraordinary vertex is present in the patch being considered, the initial step is subdividing the surface patch at least twice to define at least one standard uniform bicubic B-spline surface subpatch and up to one extraordinary subpatch that is not a standard uniform bicubic B-spline subpatch, the extraordinary subpatch containing a limit point of up to one extraordinary vertex. Next, a subdivision depth n_(ε) for the extraordinary subpatch is computed, defined as n levels of recursive subdivision performed on the extraordinary subpatch to generate a level n extraordinary subpatch control mesh, wherein n_(ε) is defined as

${\eta_{\varepsilon} \equiv \left\lceil {\log_{\delta}\left( \frac{7G^{0}}{2\;\varepsilon} \right)} \right\rceil},\mspace{14mu}{\delta = \left\{ \begin{matrix} {\frac{4}{3},} & {{{if}\mspace{14mu} N} = 3} \\ {\frac{98}{85},} & {{{if}\mspace{14mu} N}\underset{\_}{>}5} \end{matrix} \right.}$ where G⁰ is the first order norm of Π⁰ ₀, Π⁰ ₀ is a level-0 control point defined as {V_(i)|1≦i≦2N+8}, V_(i) is an extraordinary vertex with valence N, and the distance between the level n extraordinary subpatch control mesh and a corresponding bilinear plane defined in the extraordinary subpatch is less than or equal to ε if n≧n_(ε).

For the remaining patches not containing the extraordinary vertex (after the initial subdivision step described above), next is the step of computing a subdivision depth D by performing D recursive subdivisions on each standard uniform bicubic B-spline subpatch to define a level D control mesh, wherein D is defined as the maximum number of recursive subdivisions which may be performed such that the distance between the standard uniform bicubic B-spline subpatch and the level D control mesh is less than ε.

In another aspect, the present invention provides a label-driven method of subdividing a Catmull-Clark subdivision surface patch derived as described above, comprising the steps of defining a mesh for which subdivision depths have been computed, the mesh comprising a plurality of quadrilateral faces containing up to one extraordinary vertex and having at least one interior face not adjacent a boundary of the control mesh and at least one exterior face adjacent a boundary of the control mesh, and defining an initial label of the interior face as a non-zero integer k wherein k is the subdivision depth of its corresponding surface patch with respect to ε. The method also includes the step of defining an initial label of the exterior face as zero.

Next is the step of establishing a consistent condition for each face whereby no two adjacent vertices thereof have non-zero labels and no two adjacent vertices thereof have zero labels and further wherein the number of zero labels is maximized. The consistent condition is established by defining a connection supporting graph G_(b) whose vertices are those of the faces having two adjacent vertices whose labels are zero, selecting a vertex from G_(b), redefining the selected vertex label to 1, updating G_(b), and repeating the process until the connection supporting graph contains no further vertices. For any face having two or more nonzero vertex labels, a balanced Catmull-Clark subdivision step is performed. For any face having only one vertex with zero label, an unbalance Catmull-Clark subdivision step is performed. Last is the step of computing new vertices from the results of the balanced and unbalanced Catmull-Clark subdivision steps to generate at least one new face defining the adaptively refined mesh structure.

In another aspect of the present invention, a computer software program for subdivision surface modeling is provided, wherein the software performs the steps as described above.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 schematically depicts the ordering of control points for a CCSS patch with an extraordinary vertex;

FIG. 2 schematically depicts a representative population of control point sets;

FIG. 3 schematically depicts the subdivision of a surface patch having an extraordinary vertex into a plurality of standard uniform bicubic B-spline surface subpatches and a single extraordinary subpatch that is not a standard uniform bicubic B-spline subpatch which contains the limit point of the extraordinary vertex;

FIG. 4 schematically depicts FIG. 4 (a–b) schematically depicts the balanced Catmull-Clark subdivision of one of the standard uniform bicubic B-spline surface subpatches of FIG. 3;

FIG. 5 schematically depicts FIG. 5 (a–c) schematically depicts the unbalanced Catmull-Clark subdivision of the extraordinary subpatch of FIG. 3;

FIG. 6 (a–c) depicts the distance and subdivision depth computation for a CCSS patch having: (a) no extraordinary vertex; (b) an extraordinary vertex of valence 5; and (c) an extraordinary vertex of valence 8;

FIG. 7 graphically depicts a rocker FIG. 7 (a–d) graphically depicts a rocker arm, showing: (a) a control mesh therefor; (b) a limit surface therefor; (c) the result of performing a conventional uniform subdivision process; and (d) the result of performing the adaptive subdivision method of the present invention;

FIG. 8 (a–d) depicts the distance a ventilation controller component, showing: (a) a control mesh therefor; (b) a limit surface therefor; (c) the result of performing a conventional uniform subdivision process; and (d) the result of performing the adaptive subdivision method of the present invention; and

FIG. 9 (a–d) graphically depicts a marker cap, showing: (a) a control mesh therefor; (b) a limit surface therefor; (c) the result of performing a conventional uniform subdivision process; and (d) the result of performing the adaptive subdivision method of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a method and computer program, which may conveniently be disposed on a computer readable medium, for calculating a subdivision depth for a Catmull-Clark subdivision surface (CCSS) patch, and provides also a label-driven adaptive subdivision technique for a CCSS based on subdivision depths calculated for its patches.

Subdivision Depth Computation for Patches not Near an Extraordinary Vertex.

The first step is computation of a subdivision depth for a desired surface. Let V₀, V₁, V₂, and V₃ be the control points of a uniform cubic B-spline curve segment C(t) whose parameter space is [0,1]. If the middle leg of the control polygon is parametrized as follows: L(t)=V₁+(V₂−V₁)t, 0≦t≦1, then the maximum of ∥L(t)−C(t)∥ is the distance between the curve segment and its control polygon. Thus:

$\begin{matrix} {{{{L(t)} - {C(t)}}} = {{{{\frac{\left( {1 - t} \right)^{3}}{6}\left( {{2V_{1}} - V_{0} - V_{2}} \right)} + {\frac{t^{3}}{6}\left( {{2V_{2}} - V_{1} - V_{3}} \right)}}}\underset{\_}{<}{\frac{1}{6}\max{\left\{ {{{{2V_{i}} - V_{0} - V_{2}}},{{{2V_{2}} - V_{1} - V_{3}}}} \right\}.}}}} & (1) \end{matrix}$ Since (2V₁−V₀−V₂)/6 and (2V₂−V₁−V₃)/6 are the values of L(t)−C(t) at t=0 and t=1, the following lemma results: Lemma 1: The maximum of ∥L(t)−C(t)∥ occurs at the endpoints of the curve segment and may be expressed as

$\begin{matrix} {{\max\limits_{0\underset{\_}{<}t\underset{\_}{<}1}{{{L(t)} - {C(t)}}}} = {\frac{1}{6}\max\left\{ {{{{2V_{1}} - V_{0} - V_{2}}},{{{2V_{2}} - V_{1} - V_{3}}}} \right\}}} & (2) \end{matrix}$

Next is the step of defining the distance between a uniform bicubic B-spline surface patch and its control mesh. Let V_(i,j), 0≦i,j≦3, be the control points of a uniform bicubic B-spline surface patch S(u,v) with parameter space [0,1]×[0,1]. If the central mesh face {V_(1,1), V_(2,1), V_(1,2), V_(2,2)} is parametrized as follows: L(u,v)=(1−u)[(1−u)V _(1,1) +uV _(2,1]) +v[(1−u)V _(1,2) +uV _(1,2)],0≦u,v≦1 then the maximum of ∥L(u,v)−S(u,v)∥ is called the distance between S(u,v) and its control mesh. Defining Q_(u,k), Q_(v,k), Q _(u,k), and Q _(v,k) as follows:

$\begin{matrix} {Q_{u,k} \equiv {{\left( {1 - u} \right)V_{1,k}} + {uV}_{2,k,}}} & {Q_{v,k} \equiv {{\left( {1 - \upsilon} \right)V_{k,1}} + {\upsilon\; V_{k,2,}}}} \\ {{\overset{\_}{Q}}_{u,k} \equiv {\sum\limits_{i = 0}^{3}\;{{N_{i,3}(u)}V_{i,k,}}}} & {{\overset{\_}{Q}}_{\upsilon,k} \equiv {\sum\limits_{j = 0}^{3}\;{{N_{j,3}(\upsilon)}V_{k,j}}}} \end{matrix}$ where N_(i,3)(t) are standard uniform B-spline basis functions of degree 3 results in:

$\begin{matrix} {{{{L\left( {u,\upsilon} \right)} - {S\left( {u,\upsilon} \right)}}} < {{\left( {1 - \upsilon} \right){{Q_{u,1} - {\overset{\_}{Q}}_{u,1}}}} + {\upsilon{{Q_{u,2} - {\overset{\_}{Q}}_{u,2}}}} + {\sum\limits_{i = 0}^{3}\;{{N_{i,3}(u)}{{{Q_{\upsilon,i} - {\overset{\_}{Q}}_{\upsilon,i}}}.}}}}} & (3) \end{matrix}$ Application of Lemma 1 on ∥Q_(u,1)− Q _(u,1)∥, ∥Q_(u,2)− Q _(u,2)∥ and ∥Q_(v,i)− Q _(v,i)∥, =1,2,3, and by defining M⁰ as the maximum norm of the second order forward differences of the control points of S(u,v), we have

${{{L\left( {u,\upsilon} \right)} - {S\left( {u,\upsilon} \right)}}}\underset{\_}{<}{\frac{1}{6}\left\lbrack {{\left( {1 - \upsilon} \right)M^{0}} + {\upsilon\; M^{0}} + {\sum\limits_{i = 0}^{3}\;{{N_{i,3}(u)}M^{0}}}} \right\rbrack}\underset{\_}{<}{\frac{1}{3}{M^{0}.}}$ M⁰ is called the second order norm of S(u,v). From this, the following lemma is derived: Lemma 2: The maximum of ∥L(u,v)−S(u,v)∥ satisfies the following inequality

$\begin{matrix} {{\max\limits_{{0\underset{\_}{<}u},{\upsilon\underset{\_}{<}1}}{{{L\left( {u,\upsilon} \right)} - {S\left( {u,\upsilon} \right)}}}}\underset{\_}{<}{\frac{1}{3}M^{0}}} & (4) \end{matrix}$ where M⁰ is the second order norm of S(u, v).

It should be noted that even though the maximum of ∥L(t)−C(t)∥ occurs at the end points of the curve segment C(t), the maximum of ∥L(u, v)−S(u,v)∥ for a surface patch usually does not occur at the corners of S(u,v). Based on the foregoing, the method for subdivision depth computation for surface patches not adjacent to an extraordinary vertex will now be presented.

Let V_(i,j), 0≦i,j≦3, be the control points of a uniform bicubic B-spline surface patch S(u,v). We use V^(k) _(i,j), 0≦i,j≦3+2^(k−1), to represent the new control points of the surface patch after k levels of recursive subdivision. The indexing of the new control points follows the convention that V^(k) _(0,0) is always the face point of the mesh face {V^(k−1) _(0,0), V^(k−1) _(1,0), V^(k−1) _(0,1), V^(k−1) _(1,1)}. The new control points V^(k) _(i,j) will be called the level-k control points of S(u,v) and the new control mesh will be called the level-k control mesh of S(u,v).

Note that if the parameter space of the surface patch is divided into 4^(k) regions as follows:

$\begin{matrix} {{\Omega_{m,n}^{k} = {\left\lbrack {\frac{m}{2^{k}},\frac{m + 1}{2^{k}}} \right\rbrack \times \left\lbrack {\frac{n}{2^{k}},\frac{n + 1}{2^{k}}} \right\rbrack}},} & (5) \end{matrix}$ where 0≦m,n≦2^(k)−1 and let the corresponding subpatches be denoted S^(k) _(m,n)(u,v), then each S^(k) _(m,n)(u,v) is a uniform bicubic B-spline surface patch defined by the level-k control point set {V^(k) _(p,q)|m≦p≦m+3,n≦q≦n+3}. S^(k) _(m,n)(u,v) is called a level-k subpatch of S(u,v). One can define a level-k bilinear plane L^(k) _(m,n) on {V^(k) _(p,q)|p=m+1, m+1; q=n+1, n+2} and measure the distance between L^(k) _(m,n)(u,v) and S^(k) _(m,n)(u,v). It can be said that the distance between S(u,v) and the level-k control mesh is smaller than ε if the distance between each level-k subpatch S^(k) _(m,n)(u, v) and the corresponding level-k bilinear plane L^(k) _(m,n)(u,v), 0≦m,n≦2^(k)−1, is smaller than ε. Next will be demonstrated how to calculate a subdivision depth k for a given ε so that the distance between S(u,v) and the level-k control mesh is smaller than ε after k levels of recursive subdivision. The following lemma is needed in the derivation of the computation process. If we use M^(k) _(m,n) to represent the second order norm of S^(k) _(m,n) (u, v), i.e. the maximum norm of the second order forward differences of the control points of S^(k) _(m,n) (u,v), then the lemma shows the second order norm of S^(k) _(m,n) (u, v) converges at a rate of 1/4 of the level-(k−1) second order norm. The proof of this lemma is provided in Appendix A. Lemma 3: If M^(k) _(m,n) is the second order norm of S^(k) _(m,n) (u,v), then we have

$\begin{matrix} {M_{m,n}^{k}\underset{\_}{<}{\left( \frac{1}{4} \right)^{k}M^{0}}} & (6) \end{matrix}$ where M⁰ is the second order norm of S(u,v).

With lemmas 2 and 3, it is easy to see that, for any 0≦m,n≦2^(k−1), we have

${\max\limits_{{0 \leq u},{v \leq 1}}{{{L_{m,n}^{k}\left( {u,v} \right)} - {S_{m,n}^{k}\left( {u,v} \right)}}}} \leq {\frac{1}{3}M_{m,n}^{k}} \leq {\frac{1}{3}\left( \frac{1}{4} \right)^{k}{M^{0}.}}$ Hence, if k is large enough to make the right side of (7) smaller than ε, we have

${\max\limits_{{0 \leq u},{v \leq 1}}{{{L_{m,n}^{k}\left( {u,v} \right)} - {S_{m,n}^{k}\left( {u,v} \right)}}}} \leq \varepsilon$ for every 0≦m,n≦2^(k−1). This leads to the following: Theorem 4: Let V_(i,j), 0≦i,j≦3, be the control points of a uniform bicubic B-spline surface patch S(u,v). For any given ε>0, if

$\begin{matrix} {k \geq \left\lceil {\log_{4}\left( \frac{M^{0}}{3\varepsilon} \right)} \right\rceil} & (8) \end{matrix}$ levels of recursive subdivision are performed on the control points of S(u,v), then the distance between S(u,v) and the level-k control mesh is smaller than ε where M⁰ is the second order norm of S(u,v). Subdivision Depth Computation for Patches Near an Extraordinary Vertex.

A different analysis is required for computation of subdivision depth for surface patches near extraordinary vertices, necessitated by the fact that one does not have a uniform B-spline surface patch representation and cannot use the analysis of Theorem 4 directly. The method of the present invention dictates making the size of such a vicinity as small as possible, thereby reducing such size to a degree that is tolerable (i.e., within the given error tolerance) and use the analysis of Theorem 4 to analyze the remaining portion of the surface patch. A subdivision depth computation based on this concept for a CCSS patch near an extraordinary vertex is presented below. It is assumed that the initial mesh has been subdivided at least twice such that each mesh face is a quadrilateral and contains at most one extraordinary vertex.

Let Π⁰ ₀={V_(i)|1≦i≦2N+8} be a level-0 control point set that influences the shape of a surface patch S(u,v) (=S⁰ ₀(u,v). V₁ is an extraordinary vertex with valence N. The control vertices are ordered following Stam's fashion (Stam, J. 1998. Exact Evaluation of Catmull-Clark Subdivision Surfaces at Arbitrary Parameter Values. In Proceedings of SIGGRAPH 1998, 395–404, incorporated herein by reference) as schematically depicted in FIG. 1.

Using V^(n) _(i) to represent the level-n control vertices generated after n levels of recursive Catmull-Clark subdivision, and use S^(n) ₀, S^(n) ₁, S^(n) ₂ and S^(n) ₃ to represent the subpatches of S^(n−1) ₀ defined over the tiles

$\begin{matrix} {{\Omega_{0}^{n} = {\left\lbrack {0,\frac{1}{2^{n}}} \right\rbrack \times \left\lbrack {0,\frac{1}{2^{n}}} \right\rbrack}},} & {{\Omega_{1}^{n} = {\left\lbrack {\frac{1}{2^{n}},\frac{1}{2^{n - 1}}} \right\rbrack \times \left\lbrack {0,\frac{1}{2^{n}}} \right\rbrack}},} \\ {{\Omega_{2}^{n} = {\left\lbrack {\frac{1}{2^{n}},\frac{1}{2^{n - 1}}} \right\rbrack \times \left\lbrack {\frac{1}{2^{n}},\frac{1}{2^{n - 1}}} \right\rbrack}},} & {{\Omega_{3}^{n} = {\left\lbrack {0,\frac{1}{2^{n}}} \right\rbrack \times \left\lbrack {\frac{1}{2^{n}},\frac{1}{2^{n - 1}}} \right\rbrack}},} \end{matrix}$ respectively, then the shape of S^(n) ₀, S^(n) ₁, S^(n) ₂ and S^(n) ₃ are influenced by the level-n control point sets Π^(n) ₀, Π^(n) ₁, Π^(n) ₂, and Π^(n) ₃ are depicted in FIG. 2. Π₀ ^(n) ={V _(i) ^(n)|1≦i≦2N+8} S^(n) ₁, S^(n) ₂ and S^(n) ₃ are standard uniform bicubic B-spline surface patches because their control meshes satisfy a 4-by-4 structure. Hence, the technique described in Theorem 4 can be used to compute a subdivision depth for each of them. S^(n) ₀ is not a standard uniform bicubic B-spline surface patch. Hence, Theorem 4 can not be used to compute a subdivision depth for S^(n) ₀ directly. For convenience S^(n) ₀ may be called a level-n extraordinary subpatch of S(u,v) because it contains the limit point of the extraordinary points (see below). Note that if H₀ and H_(n) are column vector representations of the control points of Π⁰ ₀ and Π^(n) ₀, respectively, H ₀≡(V ₀ ,V ₁ , . . . ,V _(2N+8))^(t) ,H _(n)≡(V ₀ ^(n) ,V ₁ ^(n) , . . . ,V _(2N+8) ^(n))^(t) where (X, X, . . . , X)^(t) represents the transpose of the row vector (X, X, . . . , X) then we have H _(n)=(T)^(n) H ₀  (9) where T is the (2N+8)×(2N+8) (extended) subdivision matrix defined as follows:

$\begin{matrix} {T \equiv \begin{pmatrix} \overset{\_}{T} & 0 \\ {\overset{\_}{T}}_{1,1} & {\overset{\_}{T}}_{1,2} \end{pmatrix}} & (10) \end{matrix}$ with

$\begin{matrix} {{\overset{\_}{T} = \begin{pmatrix} a_{N} & b_{N} & c_{N} & b_{N} & c_{N} & b_{N} & \cdots & b_{N} & c_{N} \\ d & d & e & e & 0 & 0 & \cdots & e & e \\ f & f & f & f & 0 & 0 & \cdots & 0 & 0 \\ d & e & e & d & e & e & \cdots & 0 & 0 \\ f & 0 & 0 & f & f & f & \cdots & 0 & 0 \\ \; & \; & \vdots & \; & \; & \; & ⋰ & \vdots & \; \\ d & e & 0 & 0 & 0 & 0 & \cdots & d & e \\ f & f & 0 & 0 & 0 & 0 & \cdots & f & f \end{pmatrix}},} & (11) \end{matrix}$

$\begin{matrix} {{{\overset{\_}{T}}_{1,1} = \begin{pmatrix} c & 0 & 0 & b & a & b & 0 & 0 & 0 \\ e & 0 & 0 & e & d & d & 0 & 0 & 0 \\ b & 0 & 0 & c & b & a & b & c & 0 \\ e & 0 & 0 & 0 & 0 & d & d & e & 0 \\ e & 0 & 0 & d & d & e & 0 & 0 & 0 \\ b & c & b & a & b & c & 0 & 0 & 0 \\ e & e & d & d & 0 & 0 & 0 & 0 & 0 \end{pmatrix}},} & (12) \end{matrix}$

$\begin{matrix} {{\overset{\_}{T}}_{1,2} = \begin{pmatrix} c & b & c & 0 & b & c & 0 \\ 0 & e & e & 0 & 0 & 0 & 0 \\ 0 & c & b & c & 0 & 0 & 0 \\ 0 & 0 & e & e & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & e & e & 0 \\ 0 & 0 & 0 & 0 & c & b & c \\ 0 & 0 & 0 & 0 & 0 & e & e \end{pmatrix}} & (13) \end{matrix}$ and

${a_{N} = {1 - \frac{7}{4N}}},{b_{N} = \frac{3}{2N^{2}}},{c_{N} = \frac{1}{4N^{2}}},{a = \frac{9}{16}},{b = \frac{3}{32}},{c = \frac{1}{64}},{d = \frac{3}{8}},{e = \frac{1}{16}},{f = {\frac{1}{4}.}}$ Subdivision Depth Computation for a Vicinity of the Extraordinary Vertex.

The goal is to find an integer n_(ε) for a given ε>0 so that if n (≧n_(ε)) recursive subdivisions are performed on Π⁰ ₀, then the control set point of the level-n extraordinary subpatch S^(n) ₀ of S(u,v), Π^(n) ₀={V^(n) _(i)|1≦i≦2N+8}, is contained in the sphere B(V^(n+1) ₅, ε/2) with center V^(n+1) ₅≡(V^(n) ₁+V^(n) ₄+V^(n) ₅+V^(n) ₆)/4 and radius ε/2. Note that if the (2N+8)-point control mesh is contained in the then the level-n extraordinary subpatch S^(n) ₀ is contained in the sphere B(V^(n+1) ₅, ε/2) as well. This follows from the fact that S^(n) ₀, as the limit surface of Π^(n) ₀, is contained in the convex hull of Π^(n) ₀ and the convex hull of Π^(n) ₀ is contained in the sphere B(V^(n+1) ₅, ε/2). Then, we have max∥S ₀ ^(n)(u,v)−L ₀ ^(n)(u,v)∥<ε  (14) where L^(n) ₀(u,v) is a bilinear plane defined on the level-n mesh face {V^(n) ₁+V^(n) ₄+V^(n) ₅+V^(n) ₆}. The construction of such an n_(ε) depends on several properties of the (extended) subdivision matrix T and the control point sets {Π^(n) ₀}.

First note that since all the entries of the extended subdivision matrix T are non-negative and the sum of each row equals one, the extended subdivision matrix is a transition probability matrix of a (2N+8)-state Markov chain. In particular, the (2N+1)×(2N+1) block T* of T is a transition probability matrix of a (2N+1)-state Markov chain. The entries in the first row and first column of T* are all non-zero. Therefore, the matrix T* is irreducible because ( T*)² has no zero entries and, consequently, all the states are accessible to each other. On the other hand, since all the diagonal entries of T* are non-zero and entries of ( T*)^(n) are non-zero for all n≧2, it follows that all the states of T* are aperiodic and positive recurrent. Consequently, the Markov chain is irreducible and ergodic. By the well-known theorem of Markov chain, Theorem 4), ( T*)^(n) converges to a limit matrix T* whose rows are identical. More precisely

$\begin{matrix} {{\lim\limits_{n->\infty}\left( \overset{\_}{T} \right)^{n}} = {{\overset{\_}{T}}^{*} \equiv \begin{pmatrix} \Delta_{1} & \Delta_{2} & \cdots & \Delta_{{2N} + 1} \\ \Delta_{1} & \Delta_{2} & \cdots & \Delta_{{2N} + 1} \\ \vdots & \vdots & ⋰ & \vdots \\ \Delta_{1} & \Delta_{2} & \cdots & \Delta_{{2N} + 1} \end{pmatrix}}} & (15) \end{matrix}$ where Δ_(i) are the unique non-negative solution of

$\begin{matrix} \begin{matrix} {\Delta_{j} = {\sum\limits_{i = 1}^{{2N} + 1}\;{\Delta_{i}{\overset{\_}{t}}_{i,j,}}}} & {{j = 1},2,\cdots,{{2N} + 1}} \\ {{\sum\limits_{j = 1}^{{2N} + 1}\;\Delta_{j}} = 1} & \; \end{matrix} & (16) \end{matrix}$ with t _(i,j) being the entries of T*. One can easily get the following observations.

-   -   The vector (Δ₁, Δ₂, . . . , Δ_(2N+1)) satisfies the following         properties:

$\begin{matrix} {\Delta_{1} = \frac{N}{N + 5}} \\ {\Delta_{2} = {\Delta_{4} = {\cdots = {\Delta_{2N} = \frac{4}{N\left( {N + 5} \right)}}}}} \\ {\Delta_{3} = {\Delta_{5} = {\cdots = {\Delta_{{2N} + 1} = \frac{1}{N\left( {N + 5} \right)}}}}} \end{matrix}$

-   -   The matrix T* is an idempotent matrix, i.e. T* T*= T*. Hence, T*         has two eigenvalues, 1 and 0 (with multiplicity 2N).     -   T* has 1 as an eigenvalue and all the other 2N eigenvalues of T*         have a magnitude smaller than one.     -   As is well known, the limit point of {V^(n) ₁} is         V* ₁≡Δ₁ V ₁ +Δ ₂ V ₂+ . . . Δ_(2N+1) V _(2N+1).         But V*₁ is actually the limit point of all V^(n) _(j), j=1, 2, .         . . , 2N+8. Therefore, the convex hull of {V^(n) ₁, V^(n) ₂, . .         . , V^(n) _(2N+8)} converges to V*₁ when n tends to infinity         and, consequently, V*₁=S(0,0). The fact that V*₁ is the limit         point of {V^(n) ₁, V^(n) ₂, . . . , V^(n) _(2N+1)} follows         from (9) and (15). The fact that V*₁ is also the limit point of         {V^(n) _(2N+2), V^(n) _(2N+3), . . . , V^(n) _(2N+8)} is         demonstrated in Appendix B.

The last observation is important because it shows that

$\begin{matrix} {\max\limits_{V\;{\varepsilon\Pi}_{0}^{n}}{{V_{5}^{n + 1} - V}}} & (17) \end{matrix}$ converges. Therefore, it is possible to reduce the size of S^(n) ₀ to a degree that is tolerable if n is large enough. For a given ε>0 we will find an n_(ε) so that if n≧n_(ε) then the level-n control point set Π^(n) ₀ is contained in the sphere B(V^(n+1) ₅, ε/2). To do this, we need to know how fast (17) converges.

Referring to FIG. 3, let Φ^(k) ₀, Φ^(k) ₁, Φ^(k) ₂, and Φ^(k) ₃, be subsets of Π^(k) ₀ defined as follows: Φ₀ ^(k) ={V _(j) ^(k) |j=1,2, . . . ,2N+1}, Φ₁ ^(k) ={V _(j) ^(k) |j=1,4,5, . . . ,8,2N+3,2N+4,2N+5}, Φ₂ ^(k) ={V _(j) ^(k) |j=1,4,5,6,2N+2,2N+3,2N+4,2N+6,2N+7}, Φ₃ ^(k) ={V _(j) ^(k) |j=1,2, . . . ,6,2N+6,2N+7,2N+8}  (18) (V^(k) ₈ in Φ^(k) ₁ should be replaced with V^(k) ₂ if N=3) and define G^(k) ₀, G^(k) ₁, G^(k) ₂, and G^(k) ₃ as follows: G₀ ^(k)=max_(Vεφ) ₀ _(k) ∥V₁ ^(k)−V∥, G₁ ^(k)=max_(Vεφ) ₁ _(k) ∥V₆ ^(k)−V∥, G₂ ^(k)=max_(Vεφ) ₂ _(k) ∥V₅ ^(k)−V∥, G₃ ^(k)=max_(Vεφ) ₃ _(k) ∥V₄ ^(k)−V∥.   (19) G^(k) _(i) is called the first order norm of Φ^(k) _(i), i=0, 1, 2, 3. We need the following lemma for the construction of n_(ε). The proof is shown in Appendix C. Lemma 5: If Φ^(k) _(i) and G^(k) _(i) are defined as above, then for i=0, 1, 2, 3, we have

$\begin{matrix} {G_{i}^{k} \leq \left\{ \begin{matrix} {{\left( \frac{3}{4} \right)^{k}G^{0}},} & {{{if}\mspace{14mu} N} = 3} \\ {{\left( {\frac{3}{4} + \frac{7}{4N} - \frac{13}{2N^{2}}} \right)^{k}G^{0}},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix} \right.} & (20) \end{matrix}$ where G⁰≡max {G⁰ ₀, G⁰ ₁, G⁰ ₂, G⁰ ₃}. G⁰ is called the first order norm of Π⁰ ₀.

To construct n_(ε), note that if VεΠ^(n) ₀ and VεΦ^(n) ₀, we have ∥V ₅ ^(n+1) −V∥≦¼∥V ₄ ^(n) −V ₁ ^(n)∥+¼∥V ₅ ^(n) −V ₁ ^(n)∥+¼∥V ₆ ^(n) −V ₁ ^(n) ∥+∥V ₁ ^(n) −V∥≦ 7/4G ₀ ^(n). It is easy to prove that similar inequalities hold for Φ^(n) ₁, Φ^(n) ₂, and Φ^(n) ₃ as well. Hence, for each VεΠ^(n) ₀, by Lemma 5 we have

$\begin{matrix} {{{V_{5}^{n + 1} - V}} \leq \left\{ \begin{matrix} {{\frac{7}{4}\left( \frac{3}{4} \right)^{n}G^{0}},} & {{{if}\mspace{14mu} N} = 3} \\ {{\frac{7}{4}\left( {\frac{3}{4} + \frac{7}{4N} - \frac{13}{2N^{2}}} \right)^{n}G^{0}},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix} \right.} & (21) \end{matrix}$ Since the maximum of ¾+ 7/4N− 13/2N² occurs at N=7, (21) can be simplified as

$\begin{matrix} {{{V_{5}^{n + 1} - V}} \leq {\frac{7}{4}\left( \frac{1}{\delta\;} \right)^{n}G^{0}}} & (22) \end{matrix}$ where

$\begin{matrix} {\delta = \left\{ {\begin{matrix} {\frac{4}{3},} & {{{if}\mspace{14mu} N} = 3} \\ {\frac{98}{85},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix}.} \right.} & (23) \end{matrix}$ Hence, ∥V^(n+1) ₅−V∥ is smaller than ε/2 if n is large enough to make the right hand side of (22) smaller than or equal to ε/2. Consequently, we have the following theorem. Theorem 6: Let Π⁰ ₀={V_(i)|1≦i≦2N+8} be a level-0 control point set that influences the shape of a CCSS patch S(u,v) (=S⁰ ₀(u,v)). V₁ is an extraordinary vertex with valence N. The control vertices are ordered following Stam's fashion. For a given ε>0, if n_(ε) is defined as follows:

$\begin{matrix} {{n_{\varepsilon} \equiv \left\lceil {\log_{\delta}\left( \frac{7G^{0}}{2\;\varepsilon} \right)} \right\rceil},\mspace{14mu}{\delta = \left\{ {\begin{matrix} {\frac{4}{3},} & {{{if}\mspace{14mu} N} = 3} \\ {\frac{98}{85},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix}.} \right.}} & (24) \end{matrix}$ where G⁰ is the first order norm of Π⁰ ₀, then the distance between the level-n extraordinary subpatch S^(n) ₀(u,v) and the corresponding bilinear plane L^(n) ₀(u,v) is smaller than or equal to ε if n≧n_(ε). Theorem 6 shows that the rate of convergence of the control mesh in the vicinity of an extraordinary vertex is fastest when valence of the extraordinary vertex is three. Subdivision Depth Computation for the Remaining Part.

It is desired, for each k between 1 and n_(ε), to determine a subdivision depth D_(k) (≧n_(ε)) so that if D_(k) recursive subdivisions are performed on the control mesh Π⁰ ₀ of S(u,v), then the distance between the level-D_(k) control mesh and the subpatches S^(k) _(i), i=1, 2, 3, is smaller than ε. Consequently, if we define D to be the maximum of these D_(k)(i.e. D=max {D_(k)|1≦k≦n_(ε)}), then after D recursive subdivisions, the distance between the level-D control mesh and the subpatches S^(k) _(i), i=1, 2, 3, would be smaller than ε for all 1≦k≦n_(ε). Note that the distance between the level-D control mesh and the subpatches S^(k) ₁, S^(k) ₂, and S^(k) ₃ for n_(ε)+1≦k≦D, and the distance between the level-D control mesh and the level-D extraordinary subpatch S^(D) ₀ would be smaller than ε as well. This is because these subpatches are subpatches of S^(nε) ₀ and the distance between S^(nε) ₀ and the level-n_(ε) control mesh is already smaller than ε. Hence, the key here is the construction of D_(k). We will show the construction of D_(k) for S^(k) ₃ (u,v). This D_(k) works for S^(k) ₁ (u,v) and S^(k) ₂ (u,v) as well.

For 0≦u, v≦1, define a bilinear plane L^(k) ₃ (u, v) on the mesh face {V^(k) ₄, V^(k) ₅, V^(k) _(2N+7), V^(k) _(2N+6)} as follows: L ₃ ^(k)(u,v)=(1−v)[(1−u)V ₄ ^(k) +uV ₄ ^(k) ]+v[(1−u)V _(2N+7) ^(k) +uV _(2N+6) ^(k)].  (25) Since S^(k) ₃(u, v) is a uniform bicubic B-spline surface patch with control mesh Π^(k) ₃, we have, by Lemma 2, ∥L ₃ ^(k)(u,v)−S ₃ ^(k)(u,v)∥≦⅓Z ₃ ^(k)  (26) where Z^(k) ₃ is the second order norm of S^(k) ₃(u,v). If we define Z^(i) ₀ to be the second order norm of S^(i) ₀(u,v), we have Z ₃ ^(k) ≦WZ ₀ ^(k−1)≦(W)^(k) Z ₀ ⁰  (27) where

$\begin{matrix} {W = \left\{ {\begin{matrix} {\frac{2}{3},} & {{{if}\mspace{14mu} N} = 3} & \; \\ {{\frac{1}{2} + \frac{1}{4N} + \frac{21}{4N^{2}}},} & {{{if}\mspace{14mu} N} = 5} & \; \\ {{\frac{3}{4} + \frac{2}{N} - \frac{21}{2N^{2}}},} & {{{if}\mspace{14mu} N} > 5} & \; \end{matrix}.} \right.} & (28) \end{matrix}$ The proof of (27) is shown in Appendix D. Hence, by combining the above results, we have Lemma 7 The maximum distance between S^(k) ₃ and L^(k) ₃ satisfies the following inequality max∥L ₃ ^(k)(u,v)−S ₃ ^(k)(u,v)∥≦⅓(W)^(k) Z ₀ ⁰  (29) where W is defined in (28) and Z⁰ ₀ is the second order norm of S(u,v).

It should be pointed out that when defining Z^(i) ₀, only the following items are needed for second order forward differences involving V^(i) ₁: ∥2V ₁ ^(i) −V _(2j) ^(i) −V _(2[(j+2)%N]) ∥,j=1,2, . . . ,N.

Lemma 7 shows that if ⅓(W)^(k) Z⁰ ₀≦ε then the distance between S^(k) ₃ and L^(k) ₃ is already smaller than ε. However, since n_(ε) subdivisions have to be performed on Π⁰ ₀ to get S^(nε) ₀ anyway, D_(k) for S^(k) ₃ in this case is set to n_(ε). This condition holds for S^(k) ₁ and S^(k) ₂ as well.

If ⅓(W)^(k) Z⁰ ₀>ε, further subdivisions are needed on Π^(k) _(i), i=1, 2, 3, to make the distance between S^(k) _(i), i=1, 2, 3, and the corresponding mesh faces smaller than ε. Considering S^(k) ₃ again, S^(k) ₃ is a uniform bicubic B-spline surface patch with control mesh Π^(k) ₃. Therefore, if l_(k) recursive subdivisions are performed on the control mesh Π^(k) ₃, by Lemma 2 and Lemma 3 we would have ∥L ₃ ^(l) ^(k) (u,v)−S ₃ ^(k)(u,v)∥≦⅓(¼)^(l) ^(k) Z ₃ ^(k)  (30) where L^(lk) ₃(u,v) is a level-l_(k) control mesh relative to Π^(k) ₃ and Z^(k) ₃ is the second order norm of S^(k) ₃(u, v). Therefore, by combining the above result with 27), we have ∥L ₃ ^(l) ^(k) (u,v)−S ₃ ^(k)(u,v)∥≦⅓(¼)^(l) ^(k) (W)^(k) Z ₀ ⁰  (31) We get the following Lemma by setting the right hand side of (31) smaller than or equal to ε. Lemma 8 In Lemma 7, if the distance between S^(k) ₃ and L^(k) ₃ is not smaller than ε, then one needs to perform l_(k)

$\begin{matrix} {l_{k} = \left\lceil {\log_{4}\left( \frac{(W)^{k}Z_{0}^{0}}{3\;\varepsilon} \right)} \right\rceil} & (32) \end{matrix}$ more recursive subdivisions on the level-k control mesh Π^(k) ₃ of S^(k) ₃ to make the distance between S^(k) ₃ and the level-(k+l_(k)) control mesh smaller than ε.

This result works for for S^(k) ₁ and S^(k) ₂ as well. Note that the value of (W)^(k) Z⁰ ₀ is already computed in Lemma 7 and W hs to be computed only once. Therefore, the subdivision depth D_(k) for S^(k) ₁, S^(k) ₂, and S^(k) ₃ is defined as follows:

$\begin{matrix} {D_{k} = {\max\left\{ {n_{\varepsilon},{k + \left\lceil {\log_{4}\left( \frac{(W)^{k}Z_{0}^{0}}{3\;\varepsilon} \right)} \right\rceil}} \right\}}} & (33) \end{matrix}$ Consequently, we have the following main theorem: Theorem 9 Let Π⁰ ₀={V_(i)|1≦i≦2N+8} be the control mesh of a CCSS patch S(u,v). The control points are ordered following Stam's fashion with V₁ being an extraordinary vertex of valence N (see FIG. 1). For a given ε>0, if we compute n_(ε) as in (24) and D as follows: D=max {D_(k)|1≦k≦n_(ε})  (34) where D_(k) is defined in (33) then after D recursive subdivisions, the distance between S(u,v) and the level-D control mesh is smaller than ε. Label-Driven Adaptive Subdivision

Given a control mesh of arbitrary topology and an error tolerance ε>0, the next step is to construct an adaptively refined mesh that is close to within ε to the CCSS of the given control mesh, but with significantly fewer faces than are derived from the traditional Catmull-Clark subdivision process. The mesh refining process is driven by labels of mesh vertices.

The given control mesh will be referred to as Σ⁰ with the assumption that all the faces are quadrilaterals and each face contains at most one extraordinary vertex (as described supra). The limit surface of Σ⁰ will be referred to as F. For each positive integer k, Σ^(k) refers to the result of applying k levels of recursive Catmull-Clark subdivision on Σ⁰. A face of Σ^(k) is called an interior face if it is not adjacent to the boundary of the mesh. Otherwise, it is called an exterior face. All the faces of a closed control mesh are interior faces. Each interior face f of Σ^(k) has a corresponding surface patch in F, denoted S_(f). The interior faces and their corresponding surface patches are parametrized using the techniques presented by Stam. The distance between f and the limit surface F is defined as the distance between f and the corresponding surface patch S_(f).

The initial label of an interior face f in Σ⁰, denoted L_(f)(f), is set to k if k is the subdivision depth of the corresponding surface patch S_(f) with respect to ε. The label of an exterior face is set to zero. The label of a vertex V in Σ⁰ is defined as the maximum of labels of adjacent faces, i.e., L _(v)(V)=max {L _(f)(f)|fεΣ ⁰ and V is a vertex of f}.  (35)

The adaptive refinement procedure requires vertex labels of Σ⁰ to satisfy the consistent condition (Cheng, F. et al., 1989. A Parallel Mesh Generation Algorithm Based on the Vertex Label Assignment Scheme. International Journal for Numerical Methods in Engineering 28, 1429–1448, incorporated herein by reference). A face of Σ⁰ is said to be an illegal face if two adjacent vertices have non-zero labels and two adjacent vertices have zero labels. The vertex labels of Σ⁰ are said to satisfy the consistent condition if Σ⁰ contains no illegal faces. The consistent condition ensures that the adaptively refined meshes are crack-free. Usually, Σ⁰ does not satisfy the consistent condition. The easiest way to make Σ⁰ satisfy the consistent condition is to set all the zero labels to 1. However, this would unnecessarily increase the number of faces generated in the resulting meshes since the number of faces in the refined meshes is determined by the labels of the vertices. A better way is to construct an extension function E_(v)(V) of L_(v)(V),

$\begin{matrix} {{E_{v}(V)} = \left\{ \begin{matrix} {{L_{\upsilon}(V)},} & {{{{if}\mspace{14mu}{L_{\upsilon}(V)}} > 0};} \\ {{0\mspace{14mu}{or}\mspace{14mu} 1},} & {{{{if}\mspace{14mu}{L_{\upsilon}(V)}} = 0},} \end{matrix} \right.} & (36) \end{matrix}$ which satisfies the consistent condition but with as many zero labels as possible.

A greedy algorithm for the construction of E_(v)(V) via a connection supporting graph G_(b) is therefore presented herein. The vertices of G_(b) are those of the illegal faces whose labels are zero. The edges of G_(b) are those of Σ⁰ that connect vertices of G_(b). The extension function E_(v)(V) is constructed by repeatedly selecting a vertex from G_(b), changing its label to 1 and then updating G_(b) accordingly. This process continues until G_(b) is empty. The complexity of this process is that changing the label of a vertex from 0 to 1 changes the status of adjacent faces: an illegal face might become legal and a legal face might become illegal. Therefore, after changing the label of a selected vertex from 0 to 1, one needs to remove some old vertices and edges from G_(b) while adding some new vertices and edges into G_(b). Obviously, the greedy algorithm should remove as many old vertices from G_(b) and add as few new vertices into G_(b) as possible during each selection and changing cycle. This is achieved by using the following rule in selecting a vertex from G_(b) to change label. Let D(V) denote the degree of V in G_(b) and let N(V) be the number of new vertices introduced into G_(b) if the label of V is changed from 0 to 1. If the number of D(V)=1 vertices is not zero then, in the pool of vertices which are adjacent to a D(V)=1 vertex, select any one with a minimum N(V) among those with a maximum D(V). Otherwise, select any vertex with a minimum N(V) among the vertices of G_(b) with a maximum D(V).

The adaptive subdivision process is driven by vertex labels and is performed on individual mesh faces independently. After each subdivision step, labels are assigned to the newly generated vertices so they can drive the next subdivision step. The resulting meshes are crack free. The assumption is made that labels of the vertices of Σ⁰ are defined by an extension function E_(v) even though the extension function might be the same as the original label function L_(v). In the following, Σ^(k), k=1, 2, . . . , stand for the meshes generated by the adaptive refinement process. Also, variables without a bar refer to elements in Σ^(k−1), and variables with a bar refer to elements in Σ^(k).

The adaptive subdivision of Σ^(k−1), k≧1, is performed as follows. If a face has two or more nonzero vertex labels, a balanced Catmull-Clark subdivision is performed on that face (see FIG. 4). A balanced Catmull-Clark subdivision is a standard Catmull-Clark subdivision. However, coordinates of the new vertices are not yet computed. The new vertices are marked for updating. Labels of the new vertices are defined as follows. For each new vertex point, Ē_(v)( V _(i))=max {0, E_(v)(V_(i))−1}, i=1, 2, 3, 4. For each new edge point, Ē_(v)( V _(i)) is the minimum of labels of the new vertex points adjacent to V _(i), i=5, 6, 7, 8. For the new face point,

${{\overset{\_}{E}}_{\upsilon}\left( \overset{\_}{V} \right)}_{9} = \left\{ \begin{matrix} {0,\mspace{14mu}{{{{if}\mspace{14mu}{{\overset{\_}{E}}_{\upsilon}\left( \overset{\_}{V} \right)}_{5}} = {{{\overset{\_}{E}}_{\upsilon}\left( {\overset{\_}{V}}_{6} \right)} = {{{\overset{\_}{E}}_{\upsilon}\left( \overset{\_}{V} \right)}_{7} = {{{\overset{\_}{E}}_{\upsilon}\left( {\overset{\_}{V}}_{8} \right)} = 0}}}};}} \\ {1,\mspace{14mu}{{{if}\mspace{14mu}{some}\mspace{14mu}{but}\mspace{14mu}{not}\mspace{14mu}{all}\mspace{14mu}{of}\mspace{14mu}\left\{ {{{\overset{\_}{E}}_{\upsilon}\left( {\overset{\_}{V}}_{5} \right)},{{\overset{\_}{E}}_{\upsilon}\left( {\overset{\_}{V}}_{6} \right)},{{\overset{\_}{E}}_{\upsilon}\left( {\overset{\_}{V}}_{7} \right)},{{\overset{\_}{E}}_{\upsilon}\left( {\overset{\_}{V}}_{8} \right)}} \right\}{are}\mspace{14mu}{zero}};}} \\ {{\min\left\{ {{\overset{\_}{E}}_{\upsilon}\left( \overset{\_}{V} \right)} \middle| {\overset{\_}{V}\;\varepsilon\left\{ {{\overset{\_}{V}}_{5},{\overset{\_}{V}}_{6},{\overset{\_}{V}}_{7},{\overset{\_}{V}}_{8}} \right\}} \right\}},\mspace{14mu}{{otherwise}.}} \end{matrix} \right.$

If a face has only one vertex with nonzero label, an unbalanced Catmull-Clark subdivision with respect to that vertex is performed (see FIG. 5). An unbalanced Catmull-Clark subdivision generates three new faces only, as shown in FIG. 5 c. However, V ₈, V ₉ and the auxiliary structure shown in FIG. 5 b are computed and recorded for use in the computation of the vertices of Σ^(k+1). Again, coordinates of the new vertices are not computed until a later point. The vertices, except V ₃, are marked for updating and later evaluation. The labels of the new points are set to zero except V ₁ which is defined as Ē_(v)( V ₁)=E_(v)(V_(i))−1. The faces without non-zero vertex labels are not further adaptively subdivided, but are inherited topologically.

After all the faces of Σ^(k−1) are processed, vertices marked for updating in Σ^(k) are computed using the Catmull-Clark subdivision scheme to find their coordinates in Σ^(k). Note that the vertices of Σ^(k−1) required in the computation process for the new vertices are available because they were stored with the auxiliary structure (see FIG. 5 b) even though not output. Other vertices (vertices marked for updating) of Σ^(k) are inherited from Σ^(k−1) directly. Keeping an “update” status for some of the vertices in the adaptive subdivision process is necessary because whether a vertex should be inherited or updated depends on its adjacent faces. The adaptive refinement process stops when labels of all the new vertices are zero.

Other aspects of the present invention will become apparent to those skilled in this art from the following description wherein there is shown and described a preferred embodiment of this invention, simply by way of illustration of one of the modes best suited to carry out the invention. As it will be realized, this invention is capable of other different embodiments and its several details are capable of modification in various, obvious aspects all without departing from the intended scope of the invention. Accordingly, the descriptions and examples herein will be regarded as illustrative in nature and not as restrictive.

EXAMPLE 1

Referring to FIG. 6, distance and subdivision depth computation for a CCSS patch was calculated for several surfaces. The distances between the faces of the control meshes and the corresponding limit surface patches for each mesh face were 0.034 (FIG. 6 a), 0.25 (FIG. 6 b), and 0.15 (FIG. 6 c). For an error tolerance of 0.01, the subdivision depths computed for each mesh face was 1 (FIG. 6 a), 24 (FIG. 6 b), and 22 (FIG. 6 c). The calculated subdivision depths for the mesh faces shown in FIGS. 6 b and 6 c were greater because each surface has an extraordinary vertex. For the mesh face shown in FIG. 6 b, subdivision depths for error tolerances 0.25, 0.2, 0.1, 0.01, 0.001, and 0.0001 were 1, 3, 9, 24, 40, and 56, respectively.

EXAMPLE 2

FIGS. 7, 8, and 9 compare conventional uniform Catmull-Clark subdivision with the adaptive subdivision method of the present invention. Referring to FIG. 7 showing a rocker arm, uniform Catmull-Clark subdivision resulted in 22,656 vertices, 45,312 edges, and 22,656 faces (FIG. 7 c) for an error of 0.25. In contrast, the adaptive subdivision method of the present invention (FIG. 7 d) generated 2,706 vertices, 5,412 edges, and 2,706 faces, i.e. only 3/25 of the total vertices, edges, and faces required for conventional Catmull-Clark subdivision. Lowering the error tolerance to 0.2 resulted in a maximum subdivision depth of 4. In this latter case, uniform Catmull-Clark subdivision generated 362,496 vertices, 724,992 edges, and 362,496 faces. In comparison, the label-driven adaptive subdivision method of this invention generated only 9,022 vertices, 18,044 edges, and 9,022 faces, or a 40× improvement on the total number of vertices, faces, and edges.

FIG. 8 depicts a ventilation controller component. For an error tolerance of 0.15, the maximum subdivision depth of the mesh faces in the input control mesh was 3. Uniform Catmull-Clark subdivision (FIG. 8 c) generated 388,068 vertices, 776,192 edges, and 388,096 faces. In contrast, the method of the present invention required only 9814 vertices, 19,684 edges, and 9,842 faces. The reason that adaptive subdivision was performed in some of the flatter regions was that those regions contained extraordinary vertices.

A marker cap is depicted in FIG. 9. For an error tolerance of 0.1, the maximum subdivision depth of the mesh faces was 3. Uniform Catmull-Clark subdivision generated 273,398 vertices, 546,816 edges, and 273,408 faces (FIG. 9 c). FIG. 9 d shows that the label-driven adaptive subdivision method of the present invention generated only 15,086 vertices, 30,192 edges, and 15096 faces, an 18× improvement over the conventional method. Because the control mesh of the marker cap included more extraordinary vertices, and therefore required additional subdivision in the regions containing the extraordinary vertices, the savings was less than that shown in FIGS. 7 and 8. Notwithstanding, the present method represents an extraordinary savings in the number of vertices, edges, and faces required (compared to conventional Catmull-Clark subdivision) regardless of the complexity of the surface.

Accordingly, the present invention provides a significant improvement over conventional subdivision surface methodology. The subdivision depth computation step provides a precision/error control tool for all tessellation-based applications of subdivision surfaces. The label-driven adaptive subdivision step improves efficiency of all tessellation-based applications and data communication by significantly reducing the number of faces in the resultant mesh while satisfying the desired precision requirement.

Appendix A: Proof of Lemma 3

It is sufficient to show that, for each positive integer i, one has M_(0,0) ^(i+1)≦¼M_(0,0) ^(i).  (37) The sixteen second order forward differences involved in M^(i+1) _(0,0) can be classified into four categories: (C-1) F-E-F, (C-2) E-F-E, (C-3) E-V-E, and (C-4) V-E-V, based on the type of the vertices. For instance, a second order forward difference is said to be in the first category if an edge vertex is sandwiched by two face vertices, such as 2V^(i+1) _(1,0)−V^(i+1) _(0,0)−V^(i+1) _(2,0). Each category consists of four second order forward differences. We need to show that all these categories satisfy (37). In the following, we prove (37) for one item of each category. The proof of the other items is similar.

$\begin{matrix} {\left( {F - E - F} \right):{{{consider}\mspace{20mu} 2V_{0,1}^{i + 1}} - V_{0,2}^{i + 1} - {V_{0,0}^{i + 1}.\begin{matrix} {{{{2V_{0,1}^{i + 1}} - V_{0,2}^{i + 1} - V_{0,0}^{i + 1}}} = {{{\frac{1}{8}\left( {{2V_{0,1}^{i}} - V_{0,2}^{i} - V_{0,0}^{i}} \right)} +}}} \\ {{{\frac{1}{8}\left( {{2V_{1,1}^{i}} - V_{1,2}^{i} - V_{1,0}^{i}} \right)}} \leq} \\ {{{\frac{1}{8}M_{0,0}^{i}} + {\frac{1}{8}M_{0,0}^{i}}} = {\frac{1}{4}{M_{0,0}^{i}.}}} \end{matrix}}}} & (38) \end{matrix}$ Case 1

$\begin{matrix} {\left( {E - F - E} \right):{{{consider}\mspace{20mu} 2V_{0,2}^{i + 1}} - V_{0,3}^{i + 1} - {V_{0,1}^{i + 1}.\begin{matrix} {{{{2V_{0,2}^{i + 1}} - V_{0,3}^{i + 1} - V_{0,1}^{i + 1}}} = {{\frac{1}{16}\left( {{2V_{0,2}^{i}} - V_{0,3}^{i} - V_{0,1}^{i} + {2V_{0,1}^{i}} - V_{0,2}^{i} - V_{0,0}^{i} +} \right.}}} \\ {{\left. {{2V_{1,2}^{i}} - V_{1,3}^{i} - V_{1,1}^{i} + {2V_{1,1}^{i}} - V_{1,2}^{i} - V_{1,0}^{i}} \right)} \leq} \\ {{{\frac{1}{16}M_{0,0}^{i}} + {\frac{1}{16}M_{0,0}^{i}} + {\frac{1}{16}M_{0,0}^{i}} + {\frac{1}{16}M_{0,0}^{i}}} = {\frac{1}{4}{M_{0,0}^{i}.}}} \end{matrix}}}} & (39) \end{matrix}$ Case 2

$\begin{matrix} {\left( {E - V - E} \right):{{{consider}\mspace{20mu} 2V_{1,1}^{i + 1}} - V_{1,2}^{i + 1} - {V_{1,0}^{i + 1}.\begin{matrix} {{{{2V_{1,1}^{i + 1}} - V_{1,2}^{i + 1} - V_{1,0}^{i + 1}}} = {{{\frac{1}{32}\left( {{2V_{0,1}^{i}} - V_{0,2}^{i} - V_{0,0}^{i}} \right)} +}}} \\ {{\frac{3}{15}\left( {{2V_{1,1}^{i}} - V_{1,2}^{i} - V_{1,0}^{i}} \right)} +} \\ {{{\frac{1}{32}\left( {{2V_{2,1}^{i}} - V_{2,2}^{i} - V_{2,0}^{i}} \right)}} \leq} \\ {{{\frac{1}{32}M_{0,0}^{i}} + {\frac{3}{16}M_{0,0}^{i}} + {\frac{1}{32}M_{0,0}^{i}}} = {\frac{1}{4}{M_{0,0}^{i}.}}} \end{matrix}}}} & (40) \end{matrix}$ Case 3

$\begin{matrix} {\left( {V - E - V} \right):{{{consider}\mspace{20mu} 2V_{1,2}^{i + 1}} - V_{1,3}^{i + 1} - {V_{1,1}^{i + 1}.\begin{matrix} {{{{2V_{1,2}^{i + 1}} - V_{1,3}^{i + 1} - V_{1,1}^{i + 1}}} = {{\frac{1}{64}\left( {{2V_{0,2}^{i}} - V_{0,3}^{i} - V_{0,1}^{i} + {2V_{0,1}^{i}} - V_{0,2}^{i} -} \right.}}} \\ {\left. V_{0,0} \right) + {\frac{3}{32}\left( {{2V_{1,2}^{i}} - V_{1,3}^{i} - V_{1,1}^{i} + {2V_{1,1}^{i}} -} \right.}} \\ {\left. {V_{1,2}^{i} - V_{1,0}^{i}} \right) + {\frac{1}{64}\left( {{2V_{2,2}^{i}} - V_{2,3}^{i} - V_{2,1}^{i} +} \right.}} \\ {{\left. {{2V_{2,1}^{i}} - V_{2,2}^{i} - V_{2,0}^{i}} \right)} \leq \left( {\frac{1}{64} + \frac{1}{64} + \frac{3}{32} +} \right.} \\ {{\left. {\frac{3}{32} + \frac{1}{64} + \frac{1}{64}} \right)M_{0,0}^{i}} = {\frac{1}{4}{M_{0,0}^{i}.}}} \end{matrix}}}} & (41) \end{matrix}$ Case 4 This completes the proof of the lemma. Appendix B: Convergence of V^(n) _(2N+2), . . . , V^(n) _(2N+8) Note that if one can prove that

$\begin{matrix} {{\lim\limits_{n\rightarrow\infty}(T)^{n}} = {{\lim\limits_{n\rightarrow\infty}\begin{pmatrix} \overset{\_}{T} & 0 \\ {\overset{\_}{T}}_{1,1} & {\overset{\_}{T}}_{1,2} \end{pmatrix}^{n}} = {T^{*} \equiv \begin{pmatrix} {\overset{\_}{T}}^{*} & 0 \\ {\overset{\_}{T}}_{1,1}^{*} & 0 \end{pmatrix}}}} & (42) \end{matrix}$ where T* is defined in (15) and T*_(1,1) is a 7×(2N+1) version of T*, i.e.

$\begin{matrix} {{{\overset{\_}{T}}_{1,1}^{*} = \left( \begin{matrix} \Delta_{1} & \Delta_{2} & \cdots & \Delta_{{2N} + 1} \\ \Delta_{1} & \Delta_{2} & \cdots & \Delta_{{2N} + 1} \\ \vdots & \vdots & ⋰ & \vdots \\ \Delta_{1} & \Delta_{2} & \cdots & \Delta_{{2N} + 1} \end{matrix} \right)_{7 \times {({{2N} + 1})}}},} & (43) \end{matrix}$ then, by (9) we have V _(j) ^(n) →V ₁*≡Δ₁ V ₁+Δ₂ V ₂+ . . . +Δ_(2N+1) V _(2N+1) for j=2N+2, 2N+3, . . . , 2N+8. Hence, to prove that V^(n) _(2N+2), . . . , V^(n) _(2N+8) converge to V*₁, it is sufficient to show that (42) is true, or, equivalently, to show that (i) ( T _(1,2))^(n) converges to a 7×7 zero matrix when n tends to infinity, and (ii) the lower-left 7×(2N+1) block of (T)^(2n) converges to T*_(1,1). (I) is obvious because T _(1,2) contains non-negative entries and the sum of each row is smaller than one. To prove (ii), note that the sum of each row of (7)^(n) is one and, from (i), ( T _(1,2))^(n)→0. Therefore, for each of the last 7 rows of (T)^(n), the sum of the first 2N+1 entries is close to one when n is large. On the other hand, when n is large, (15) is true, i.e. each column of ( T)^(n) has almost identical entries. Hence, computing an entry of the lower-left 7×(2N+1) block of (T)^(2n)=(T)^(n)(T)^(n) is like multiplying 2N+1 almost identical entries (in the same column of the upper-left (2N+1)×(2N+1) block of the second (T)^(n) by 2N+1 non-negative numbers whose sum is close to one (in the same row of the lower-left 7×(2N+1) block of the first (T)^(n). Consequently the value of that entry in the lower-left 7×(2N+1) block of (T)^(2n)=(T)^(n) (T)^(n) is close to the first 2N+1 almost identical entries in the same column of the second (T)^(n) and this completes the proof of (ii). Appendix C: Rate of Convergence of Φ^(k) _(j)

In this appendix we prove Lemma 5. Since Φ^(k) _(j) is symmetric to Φ^(k) ₃, we only need to consider G^(k) ₀, G^(k) ₂, and G^(k) ₃ for the lemma.

(i) G^(k) ₀. For an edge point such as V^(i+1) ₄, we have

$\begin{matrix} \begin{matrix} {{{V_{1}^{i + 1} - V_{4}^{i + 1}}} = {{{\sum\limits_{j = 4}^{N}\;{\frac{3}{2N^{2}}\left( {V_{2j}^{i} - V_{1}^{i}} \right)}} + {\sum\limits_{j = 3}^{N}\;{\frac{1}{4N^{2}}\left( {V_{{2j} + 1}^{i} -} \right.}}}}} \\ {\left. V_{1}^{i} \right) + {\left( {\frac{3}{2N^{2}} - \frac{1}{16}} \right)\left( {V_{2}^{i} - V_{1}^{i}} \right)} + \left( {\frac{1}{4N^{2}} -} \right.} \\ {{\left. \frac{1}{16} \right)\left( {V_{3}^{i} - V_{1}^{i}} \right)} + {\left( {\frac{3}{2N^{2}} - \frac{3}{8}} \right)\left( {V_{4}^{i} - V_{1}^{i}} \right)} +} \\ {{\left( {\frac{1}{4N^{2}} - \frac{1}{16}} \right)\left( {V_{5}^{i} - V_{1}^{i}} \right)} + {\left( {\frac{3}{2N^{2}} - \frac{1}{16}} \right)\left( {V_{6}^{i} -} \right.}} \\ {{V_{1}^{i}} \leq \left\lbrack {{\sum\limits_{j = 4}^{N}\frac{3}{2N^{2}}} + {\sum\limits_{j = 3}^{N}\;\frac{1}{4N^{2}}} + {{2\left( {\frac{3}{2N^{2}} -} \right.}}} \right.} \\ {\left. {{\left. \frac{1}{16} \right)} + \left( {\frac{3}{8} - \frac{3}{2N^{2}}} \right) + {2\left( {\frac{1}{16} - \frac{1}{4N^{2}}} \right)}} \right\rbrack G_{0}^{i}} \\ {= \left\{ \begin{matrix} {{\left( {\frac{3}{8} + \frac{7}{4N} - \frac{4}{N^{2}}} \right)G_{0}^{i}},\mspace{14mu}{{{if}\mspace{14mu} N} = 3}} \\ {{\left( {\frac{5}{8} + \frac{7}{4N} - \frac{10}{N^{2}}} \right)G_{0}^{i}},\mspace{14mu}{{{if}\mspace{14mu} N} \geq 5}} \end{matrix} \right.} \end{matrix} & (44) \end{matrix}$ where G^(i) ₀ is defined in (20).

For a face point such as V^(i+1) ₃, we have

$\begin{matrix} {{{V_{1}^{i + 1} - V_{3}^{i + 1}}} = {\;{{{{{\sum\limits_{j = 3}^{N}\;{\frac{3}{2\; N^{2}}\left( {V_{2\; j}^{i} - V_{1}^{i}} \right)}} + {\sum\limits_{j = 3}^{N}\;{\frac{1}{4\; N^{2}}\left( {V_{{2\; j} + 1}^{i} - V_{1}^{i}} \right)}} + {\left( {\frac{3}{2\; N^{2}} - \frac{1}{4}} \right)\left( {V_{2}^{i} - V_{1}^{i}} \right)} + {\left( {\frac{1}{4\; N^{2}} - \frac{1}{4}} \right)\left( {V_{3}^{i} - V_{1}^{i}} \right)} + {\left( {\frac{3}{2\; N^{2}} - \frac{1}{4}} \right)\left( {V_{4}^{i} - V_{1}^{i}} \right)}} \leq {\left\lbrack {{\sum\limits_{j = 3}^{N}\;\frac{3}{2\; N^{2}}} + {\sum\limits_{j = 2}^{N}\;\frac{1}{4\; N^{2}}} + {2\left( {\frac{1}{4} - \frac{3}{2\; N^{2}}} \right)} + \frac{1}{4} - \frac{1}{4\; N^{2}}} \right\rbrack G_{0}^{i}}} = {\left( {\frac{3}{4} + \frac{7}{4\; N} - \frac{13}{2\; N^{2}}} \right)G_{0}^{i}}},\mspace{20mu}{N = {{3\mspace{14mu}{or}\mspace{14mu} N} \geq 5.}}}}} & (45) \end{matrix}$ The other cases are similar to (44) or (45). Hence, we have the following inequality for N=3 or N≧5:

$\begin{matrix} {G_{0}^{i + 1} \leq {\left( {\frac{3}{4} + \frac{7}{4\; N} - \frac{13}{2\; N^{2}}} \right)G_{0}^{i}} \leq {\left( {\frac{3}{4} + \frac{7}{4\; N} - \frac{13}{2\; N^{2}}} \right)^{i + 1}{G_{0}^{0}.}}} & (46) \end{matrix}$ (ii) G^(k) ₃. For an edge point such as V^(i+1) _(2N+8), we have

$\begin{matrix} {{{V_{4}^{i + 1} - V_{{2\; N} + 8}^{i + 1}}} = {{{{\frac{1}{16}\left( {V_{{2\; N} + 8}^{i} + V_{{2\; N} + 7}^{i} - V_{6}^{i} - V_{5}^{i}} \right)} + {\frac{5}{16}\left( {V_{3}^{i} - V_{1}^{i}} \right)}}} \leq {{{\frac{1}{16}\left( {V_{{2\; N} + 8}^{i} - V_{4}^{i}} \right)} + {\frac{1}{16}\left( {V_{{2\; N} + 7}^{i} - V_{4}^{i}} \right)} + {\frac{1}{16}\left( {V_{4}^{i} - V_{6}^{i}} \right)} + {\frac{1}{16}\left( {V_{4}^{i} - V_{5}^{i}} \right)} + {\frac{5}{16}\left( {V_{3}^{i} - V_{1}^{i}} \right)}}} \leq {\frac{9}{16}\max\left\{ {G_{0}^{i},G_{3}^{i}} \right\}}}} & (47) \end{matrix}$ where G^(i) ₀ and G^(i) ₃ are defined in (20).

For a face point such as V^(i+1) ₃, we have

$\begin{matrix} {{{V_{4}^{i + 1} - V_{3}^{i + 1}}} = {{{{\frac{3}{16}\left( {V_{2}^{i} + V_{3}^{i}} \right)} - {\frac{1}{16}\left( {V_{6}^{i} + V_{5}^{i}} \right)} - {\frac{1}{8}\left( {V_{1}^{i} + V_{4}^{i}} \right)}}} \leq {{{\frac{3}{16}\left( {V_{2}^{i} - V_{1}^{i}} \right)} + {\frac{3}{16}\left( {V_{3}^{i} - V_{4}^{i}} \right)} + {\frac{1}{16}\left( {V_{1}^{i} - V_{6}^{i}} \right)} + {\frac{1}{16}\left( {V_{4}^{i} - V_{5}^{i}} \right)}}} \leq {\frac{1}{2}\max{\left\{ {G_{0}^{i},G_{3}^{i}} \right\}.}}}} & (48) \end{matrix}$

For a vertex point such as V^(i+1) _(2N+7), we have

$\begin{matrix} {{{V_{4}^{i + 1} - V_{{2\; N} + 7}^{i + 1}}} = {{{\frac{3}{16}\left( {V_{4}^{i} - {\frac{9}{32}V_{1}^{i}} + {\frac{1}{32}\left( {V_{3}^{i} + V_{5}^{i}} \right)} + {\frac{3}{32}V_{{2\; N} + 7}^{i}} - {\frac{3}{64}\left( {V_{6}^{i} + V_{2}^{i}} \right)} + {\frac{1}{64}\left( {V_{{2\; N} + 8}^{i} + V_{{2\; N} + 6}^{i}} \right)}} \right.} \leq {{{{\frac{1}{64}\left( {V_{{2\; N} + 8}^{i} - V_{4}^{i}} \right)} + {\frac{3}{32}\left( {V_{{2\; N} + 7}^{i} - V_{4}^{i}} \right)} + {\frac{1}{64}\left( {V_{{2\; N} + 6}^{i} - V_{4}^{i}} \right)} + {\frac{9}{32}\left( {V_{4}^{i} - V_{1}^{i}} \right)} + {\frac{3}{64}\left( {V_{1}^{i} - V_{6}^{i}} \right)} + {\frac{3}{64}\left( {V_{1}^{i} - V_{2}^{i}} \right)} + {\frac{1}{32}\left( {V_{3}^{i} - V_{1}^{i}} \right)} + {\frac{1}{32}\left( {V_{5}^{i} - V_{1}^{i}} \right)}} \preceq {\frac{9}{16}\max{\left\{ {G_{0}^{i},G_{3}^{i}} \right\}.}}}}}}} & (49) \end{matrix}$ The other cases are similar to these cases. Hence, by combining the results of (47), (48), and (49), we have

$\begin{matrix} {G_{3}^{i + 3} \leq {\frac{9}{16}\max\left\{ {G_{0}^{i},G_{3}^{i}} \right\}} \leq {\frac{9}{16}\left( {\frac{3}{4} + \frac{7}{4\; N} - \frac{13}{2\; N^{2}}} \right)^{i}\max{\left\{ {G_{0}^{0},G_{3}^{0}} \right\}.}}} & (50) \end{matrix}$ The second inequality of (50) follows from (46). (50) works for N=3 or N≧5. (iii) G^(k) ₂. For an edge point such as V^(i+1) _(2N+6), we have

$\begin{matrix} {{{V_{{2\; N} + 6}^{i + 1} - V_{5}^{i + 1}}} = {{{{{- \frac{3}{16}}\left( {V_{1}^{i} + V_{6}^{i}} \right)} + {\frac{1}{8}\left( {V_{4}^{i} + V_{5}^{i}} \right)} + {\frac{1}{16}\left( {V_{{2\; N} + 7}^{i} + V_{{2\; N} + 6}^{i}} \right)}}} = {{{{\frac{3}{16}\left( {V_{4}^{i} - V_{1}^{i}} \right)} + {\frac{3}{16}\left( {V_{5}^{i} - V_{6}^{i}} \right)} + {\frac{1}{16}\left( {V_{{2\; N} + 7}^{i} - V_{4}^{i}} \right)} + {\frac{1}{16}\left( {V_{{2\; N} + 6}^{i} - V_{5}^{i}} \right)}}} \leq {\frac{1}{2}\max{\left\{ {G_{1}^{i},G_{2}^{i},G_{3}^{i}} \right\}.}}}}} & (51) \end{matrix}$

For a vertex point such as V^(i+1) _(2N+2), we have

$\begin{matrix} {{{V_{{2\; N} + 2}^{i + 1} - V_{5}^{i + 1}}} = {{{{\frac{3}{32}\left( {V_{{2\; N} + 6}^{i} - V_{5}^{i}} \right)} - {\frac{1}{64}\left( {V_{{2\; N} + 2}^{i} - V_{5}^{i}} \right)} - {\frac{3}{32}\left( {V_{{2\; N} + 3}^{i} + V_{5}^{i}} \right)} + {\frac{1}{64}\left( {V_{{2\; N} + 4}^{i} - V_{6}^{i}} \right)} + {\frac{1}{64}\left( {V_{{2\; N} + 7}^{i} - V_{4}^{i}} \right)} + {\frac{9}{64}\left( {V_{5}^{i} - V_{6}^{i}} \right)} + {\frac{9}{64}\left( {V_{5}^{i} - V_{4}^{i}} \right)} + {\frac{15}{64}\left( {V_{5}^{i} - V_{1}^{i}} \right)}}} \leq {\frac{3}{4}\max{\left\{ {G_{1}^{i},G_{2}^{i},G_{3}^{i}} \right\}.}}}} & (52) \end{matrix}$ The other cases are similar to these two cases. Hence, by combining the results of (51), (52), (46), and (50), we have

$\begin{matrix} \begin{matrix} {G_{2}^{i + 1} \leq {\frac{3}{4}\max\left\{ {G_{1}^{i},G_{2}^{i},G_{3}^{i}} \right\}}} \\ {\leq \left\{ \begin{matrix} {{\left( \frac{3}{4} \right)^{i + 1}G^{0}},} & {{{if}\mspace{14mu} N} = 3} \\ {{\left( \frac{3}{4} \right)\left( \frac{{3\; N^{2}} + {7\; N} - 26}{4\; N^{2}} \right)^{i}G^{0}},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix} \right.} \end{matrix} & (53) \end{matrix}$ where G⁰=max {G⁰ ₀, G⁰ ₁, G⁰ ₂, G⁰ ₃}. The lemma now follows from (46), (50), and (53). Appendix D: Proof of (27)

The proof of Lemma 3 shows that the norms of most of the second order forward differences of the control points of Π^(k) ₃ satisfy the inequality ∥2A−B−C∥≦¼Z ₀ ^(k−1) except 2V^(k) ₁−V^(k) ₂−V^(k) ₆, 2V^(k) ₆−V^(k) ₁−V^(k) _(2N+4), and 2V^(k) ₄−V^(k) ₁−V^(k) _(2N+7). The last two cases are similar. Hence, we only need consider the first two cases.

In the second case, we have

${{{{2\; V_{6}^{i + 1}} - V_{1}^{i + 1} - V_{{2\; N} + 4}^{i + 1}}} = {{{\frac{1}{64\; N^{2}}\left\{ {{N^{2}\left( {{2\; V_{7}^{i}} - V_{8}^{i} - V_{{2\; N} + 5}^{i}} \right)} + {N^{2}\left( {{2\; V_{5}^{i}} - V_{{2\; N} + 3}^{i} - V_{4}^{i}} \right)} + {6\;{N^{2}\left( {{2\; V_{6}^{i}} - V_{1}^{i} - V_{{2\; N} + 4}^{i}} \right)}} + {8{\sum\limits_{j = 1}^{N}\;\left( {{2\; V_{2{\lbrack{{j\% N} + 1}\rbrack}}^{i}} - V_{{2\; j} + 1}^{i} - V_{2{\lbrack{{j\% N} + 1}\rbrack}}^{i}} \right)}} + {\left( {{8\; N^{2}} - 56} \right)\left( {{{- 2}\; V_{1}^{i}} + V_{4}^{i} + V_{8}^{i}} \right)} + {56{\sum\limits_{j = 3}^{N + 1}\;\left( {{2\; V_{1}^{i}} - V_{2{\lbrack{{{({j - 1})}\%\; N} + 1}\rbrack}}^{i} - V_{2{\lbrack{{{({j + 1})}\%\; N} + 1}\rbrack}}^{i}} \right)}}} \right\}}} \leq {\left( {\frac{1}{4} + \frac{1}{N} - \frac{7}{4\; N^{2}}} \right)Z_{0}^{i}}}},\mspace{14mu}{N = {{3\mspace{14mu}{or}\mspace{14mu} N} \geq 5}}$ where Z^(i) ₀ is the second order norm of S^(i) ₀. In the above derivation, V^(i) ₈ should be replaced with V^(i) ₂ when N=3.

In the first case, when N≧5, we have

${{{2\; V_{1}^{i + 1}} - V_{2}^{i + 1} - V_{6}^{i + 1}}} = {{\frac{1}{16\; N^{2}}{{{\sum\limits_{j = 1}^{N}\;{4\left( {V_{{2\; j} - 1}^{i} - {2\; V_{2\; j}^{i}} + V_{{2\; j} + 1}^{i}} \right)}} + {N^{2}\left( {{2\; V_{2}^{i}} - V_{{2\; N} + 1}^{i} - V_{3}^{i}} \right)} + {N^{2}\left( {{2\; V_{6}^{i}} - V_{7}^{i} - V_{5}^{i}} \right)} + {\left( {N^{2} - 28} \right)\left( {{2\; V_{1}^{i}} - V_{4}^{i} - V_{2\; N}^{i}} \right)} + {\left( {N^{2} - 28} \right)\left( {{2\; V_{1}^{i}} - V_{4}^{i} - V_{8}^{i}} \right)} - {\sum\limits_{j = 5}^{N - 1}\;{28\left( {{2\; V_{1}^{i}} - V_{2\; j}^{i} - V_{2{({j - 2})}}^{i}} \right)}} - {28\left( {{2\; V_{1}^{i}} - V_{{2\; N} - 4}^{i} - V_{2\; N}^{i}} \right)} - {28\left( {{2\; V_{1}^{i}} - V_{{2\; N} - 2}^{i} - V_{2}^{i}} \right)} + {\left( {{8\; N^{2}} - 28} \right)\left( {{2\; V_{1}^{i}} - V_{2}^{i} - V_{6}^{i}} \right)}}}} \leq \left\{ \begin{matrix} {{\left( {\frac{1}{2} + \frac{1}{4\; N} + \frac{21}{4\; N^{2}}} \right)Z_{0}^{i}},} & {{{if}\mspace{14mu} N} = 5} \\ {{\left( {\frac{3}{4} + \frac{2}{4\; N} - \frac{21}{2\; N^{2}}} \right)Z_{0}^{i}},} & {{{if}\mspace{14mu} N} > 5.} \end{matrix} \right.}$ In the first summation, one should use V^(i) _(2N+1) for V^(i) _(2j+1) when j=1. The difference between the case N=5 and N≧6 comes from the fact that (N²−28) is negative when N=5. When N=3, we have

${{{{2\; V_{1}^{i + 1}} - V_{2}^{i + 1} - V_{6}^{i + 1}}} = {{\frac{1}{144}{{{5\left( {{2\; V_{2}^{i}} - V_{3}^{i} - V_{7}^{i}} \right)} + {5\left( {{2\; V_{6}^{i}} - V_{7}^{i} - V_{5}^{i}} \right)} - {4\left( {{2\; V_{4}^{i}} - V_{3}^{i} - V_{5}^{i}} \right)} - {19\left( {{2\; V_{1}^{i}} - V_{4}^{i} - V_{2}^{i}} \right)} - {19\left( {{2\; V_{1}^{i}} - V_{4}^{i} - V_{6}^{i}} \right)} + {44\left( {{2\; V_{1}^{i}} - V_{2}^{i} - V_{6}^{i}} \right)}}}} \leq {\frac{2}{3}Z_{0}^{i}}}},\mspace{14mu}{{{when}\mspace{14mu} N} = 3}$ Consequently, from the above results we have the first part of (27). The second part of (27) follows from the observation that the norms of second order forward differences similar to 2V^(i+1) ₁−V^(i+1) ₂−V^(i+1) ₆ dominates the other second order forward differences in all subsequent norm computation.

The foregoing description is presented for purposes of illustration and description of the various aspects of the invention. The descriptions are not intended to be exhaustive or to limit the invention to the precise form disclosed. The embodiments described above were chosen to provide the best illustration of the principles of the invention and its practical application to thereby enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the invention as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly, legally and equitably entitled. 

1. A method for modeling or representing a surface or shape having an arbitrary topology which may be represented by a control mesh comprising at least one discrete Catmull-Clark Subdivision Surface (CCSS) patch defined by a set of control points, comprising the steps of: computing a subdivision depth determining the number of recursive subdivisions which may be performed on the control mesh to generate a plurality of finer mesh elements, whereby a distance between each finer mesh element and a corresponding limit surface patch is less than a predetermined error tolerance ε; and using the computed subdivision depth to construct an adaptively refined mesh that is substantially similar to the control mesh within the range of said predetermined error tolerance ε; wherein each face of the recursively subdivided control mesh is a quadrilateral and contains up to one extraordinary vertex.
 2. The method of claim 1, wherein the limit surface patch is not adjacent to an extraordinary vertex.
 3. The method of claim 1, wherein the limit surface patch is adjacent to an extraordinary vertex.
 4. The method of claim 2, wherein the limit surface patch is a uniform bicubic B-spline surface patch designated S(u,v).
 5. The method of claim 4, including the step of calculating a subdivision depth k defined as k levels of recursive subdivision performed on the control points of the limit surface patch S(u, v) to generate a level k control mesh, wherein k is defined as k≧┌ log₄ (M⁰/3ε)┐, where M⁰ is the second order norm of S(u,v) and the distance between S(u,v) and the level k control mesh is less than ε.
 6. The method of claim 3, including the initial step of subdividing the limit surface patch at least twice to define at least one standard uniform bicubic B-spline surface subpatch and up to one extraordinary subpatch that is not a standard uniform bicubic B-spline subpatch, said extraordinary subpatch containing a limit point of up to one extraordinary vertex.
 7. The method of claim 6, further including the step of computing a subdivision depth n_(ε) for the extraordinary subpatch, defined as n levels of recursive subdivision performed on the extraordinary subpatch to generate a level n extraordinary subpatch control mesh, wherein n_(ε) is defined as ${n_{\varepsilon} \equiv \left\lceil {\log_{\delta}\left( \frac{7\; G^{0}}{2\;\varepsilon} \right)} \right\rceil},\mspace{14mu}{\delta = \left\{ \begin{matrix} {\frac{4}{3},} & {{{if}\mspace{14mu} N} = 3} \\ {\frac{98}{85},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix} \right.}$ where G⁰ is the first order norm of Π⁰ ₀, Π⁰ ₀ is a level-0 control point defined as {V_(i)|1≦i≦2N+8}, V_(i) is an extraordinary vertex with valence N, and the distance between the level n extraordinary subpatch control mesh and a corresponding bilinear plane defined in the extraordinary subpatch is less than or equal to ε if n≧n_(ε).
 8. The method of claim 7, further including the step of computing a subdivision depth D by performing D recursive subdivisions on each standard uniform bicubic B-spline subpatch to define a level D control mesh, wherein D is defined as the maximum number of recursive subdivisions which may be performed such that the distance between the standard uniform bicubic B-spline subpatch and the level D control mesh is less than ε.
 9. The method of claim 1, wherein the step of constructing an adaptively refined mesh comprises the steps of: defining a mesh for which subdivision depths have been computed, said mesh comprising a plurality of quadrilateral faces containing up to one extraordinary vertex and having at least one interior face not adjacent a boundary of the control mesh and at least one exterior face adjacent a boundary of the control mesh; defining an initial label of the interior face as a non-zero integer k wherein k is the subdivision depth of its corresponding surface patch with respect to ε, defining an initial label of the exterior face as zero; establishing a consistent condition for each face whereby no two adjacent vertices thereof have non-zero labels and no two adjacent vertices thereof have zero labels and further wherein the number of zero labels is maximized, the consistent condition being established by defining a connection supporting graph G_(b) whose vertices are those of the faces having two adjacent vertices whose labels are zero, selecting a vertex from G_(b), redefining the selected vertex label to 1, updating G_(b), and repeating the process until the connection supporting graph contains no further vertices; performing a balanced Catmull-Clark subdivision step on any face having two or more nonzero vertex labels; performing an unbalanced Catmull-Clark subdivision step on any face having only one vertex with zero label; and computing new vertices from the results of the balanced and unbalanced Catmull-Clark subdivision steps to generate at least one new face defining the adaptively refined mesh structure.
 10. A computer-readable medium having computer-executable instructions for modeling or representing a surface or shape having an arbitrary topology which may be represented by a control mesh comprising at least one discrete Catmull-Clark Subdivision Surface (CCSS) patch defined by a set of control points, by the steps of: computing a subdivision depth determining the number of recursive subdivisions which may be performed on the control mesh to generate a plurality of finer mesh elements, whereby a distance between each finer mesh element and a corresponding limit surface patch is less than a predetermined error tolerance ε; and using the computed subdivision depth to construct an adaptively refined mesh that is substantially similar to the control mesh within the range of said predetermined error tolerance ε; wherein each face of the recursively subdivided control mesh is a quadrilateral and contains up to one extraordinary vertex.
 11. The computer-readable medium of claim 10, wherein the limit surface patch is not adjacent to an extraordinary vertex.
 12. The computer-readable medium of claim 10, wherein the limit surface patch is adjacent to an extraordinary vertex.
 13. The computer-readable medium of claim 11, wherein the limit surface patch is a uniform bicubic B-spline surface patch designated S(u,v).
 14. The computer-readable medium of claim 13, wherein the computer-readable medium performs the further step of calculating a subdivision depth k defined as k levels of recursive subdivision performed on the control points of the limit surface patch S(u, v) to generate a level k control mesh, wherein k is defined as k≧┌ log₄ (M⁰/3ε) ┐, where M⁰ is the second order norm of S(u,v) and the distance between S(u,v) and the level k control mesh is less than ε.
 15. The computer-readable medium of claim 12, wherein the computer-readable medium performs the initial step of subdividing the limit surface patch at least twice to define at least one standard uniform bicubic B-spline surface subpatch and up to one extraordinary subpatch that is not a standard uniform bicubic B-spline subpatch, said extraordinary subpatch containing a limit point of up to one extraordinary vertex.
 16. The computer-readable medium of claim 15, wherein the computer-readable medium performs the further step of computing a subdivision depth n_(ε) for the extraordinary subpatch, defined as n levels of recursive subdivision performed on the extraordinary subpatch to generate a level n extraordinary subpatch control mesh, wherein n_(ε) is defined as ${{n_{\varepsilon} \equiv \left\lceil {\log_{\delta}\left( \frac{7\; G^{0}}{2\;\varepsilon} \right)} \right\rceil},\mspace{14mu}{\delta = \left\{ \begin{matrix} {\frac{4}{3},} & {{{if}\mspace{14mu} N} = 3} \\ {\frac{98}{85},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix} \right.}}$ where G⁰ is the first order norm of Π⁰ ₀, Π⁰ ₀ is a level-0 control point defined as {V_(i)|1≦i≦2N+8}, V_(i) is an extraordinary vertex with valence N, and the distance between the level n extraordinary subpatch control mesh and a corresponding bilinear plane defined in the extraordinary subpatch is less than or equal to ε if n≧n_(ε).
 17. The computer-readable medium of claim 16, wherein the computer-readable medium further performs the step of computing a subdivision depth D by performing D recursive subdivisions on each standard uniform bicubic B-spline subpatch to define a level D control mesh, wherein D is defined as the maximum number of recursive subdivisions which may be performed such that the distance between the standard uniform bicubic B-spline subpatch and the level D control mesh is less than ε.
 18. The computer-readable medium of claim 10, wherein the computer-readable medium constructs an adaptively refined mesh by performing the steps of: defining a mesh for which subdivision depths have been computed, said mesh comprising a plurality of quadrilateral faces containing up to one extraordinary vertex and having at least one interior face not adjacent a boundary of the control mesh and at least one exterior face adjacent a boundary of the control mesh; defining an initial label of the interior face as a non-zero integer k wherein k is the subdivision depth of its corresponding surface patch with respect to ε, defining an initial label of the exterior face as zero; establishing a consistent condition for each face whereby no two adjacent vertices thereof have non-zero labels and no two adjacent vertices thereof have zero labels and further wherein the number of zero labels is maximized, the consistent condition being established by defining a connection supporting graph G_(b) whose vertices are those of the faces having two adjacent vertices whose labels are zero, selecting a vertex from G_(b), redefining the selected vertex label to 1, updating G_(b), and repeating the process until the connection supporting graph contains no further vertices; performing a balanced Catmull-Clark subdivision step on any face having two or more nonzero vertex labels; performing an unbalanced Catmull-Clark subdivision step on any face having only one vertex with zero label; and computing new vertices from the results of the balanced and unbalanced Catmull-Clark subdivision steps to generate at least one new face defining the adaptively refined mesh structure.
 19. A method for modeling or representing a surface or shape having an arbitrary topology which may be represented by a control mesh comprising at least one discrete Catmull-Clark Subdivision Surface (CCSS) patch defined by a set of control points, comprising the steps of: computing a subdivision depth determining the number of recursive subdivisions which may be performed on the control mesh to generate a plurality of finer mesh elements, whereby a distance between each finer mesh element and a corresponding limit surface patch that is a uniform bicubic B-spline surface patch S(u,v) is less than a predetermined error tolerance ε; wherein the subdivision depth is calculated as subdivision depth k defined as k levels of recursive subdivision performed on the control points of the limit surface patch S(u,v) to generate a level k control mesh, wherein k is defined as k≧┌ log₄ (M⁰/3ε) ┐, where M⁰ is the second order norm of S(u,v) and the distance between S(u,v) and the level k control mesh is less than ε; and using the computed subdivision depth to construct an adaptively refined mesh that is substantially similar to the control mesh within the range of said predetermined error tolerance ε; wherein each face of the recursively subdivided control mesh is a quadrilateral and contains up to one extraordinary vertex.
 20. The method of claim 19, wherein the limit surface patch is not adjacent to an extraordinary vertex.
 21. The method of claim 19, wherein the limit surface patch is adjacent to an extraordinary vertex.
 22. The method of claim 21, including the initial step of subdividing the limit surface patch at least twice to define at least one standard uniform bicubic B-spline surface subpatch and up to one extraordinary subpatch that is not a standard uniform bicubic B-spline subpatch, said extraordinary subpatch containing a limit point of up to one extraordinary vertex.
 23. The method of claim 22, further including the step of computing a subdivision depth n_(ε) for the extraordinary subpatch, defined as n levels of recursive subdivision performed on the extraordinary subpatch to generate a level n extraordinary subpatch control mesh, wherein n_(ε) is defined as ${n_{\varepsilon} \equiv \left\lceil {\log_{\delta}\left( \frac{7\; G^{0}}{2\;\varepsilon} \right)} \right\rceil},\mspace{14mu}{\delta = \left\{ \begin{matrix} {\frac{4}{3},} & {{{if}\mspace{14mu} N} = 3} \\ {\frac{98}{85},} & {{{if}\mspace{14mu} N} \geq 5} \end{matrix} \right.}$ where G⁰ is the first order norm of Π⁰ ₀, Π⁰ ₀ is a level-0 control point defined as {V_(i)|1≦i≦2N+8}, V_(i) is an extraordinary vertex with valence N, and the distance between the level n extraordinary subpatch control mesh and a corresponding bilinear plane defined in the extraordinary subpatch is less than or equal to ε if n≧n_(ε).
 24. The method of claim 23, further including the step of computing a subdivision depth D by performing D recursive subdivisions on each standard uniform bicubic B-spline subpatch to define a level D control mesh, wherein D is defined as the maximum number of recursive subdivisions which may be performed such that the distance between the standard uniform bicubic B-spline subpatch and the level D control mesh is less than ε.
 25. The method of claim 19, wherein the step of constructing an adaptively refined mesh comprises the steps of: defining a mesh for which subdivision depths have been computed, said mesh comprising a plurality of quadrilateral faces containing up to one extraordinary vertex and having at least one interior face not adjacent a boundary of the control mesh and at least one exterior face adjacent a boundary of the control mesh; defining an initial label of the interior face as a non-zero integer k wherein k is the subdivision depth of its corresponding surface patch with respect to ε, defining an initial label of the exterior face as zero; establishing a consistent condition for each face whereby no two adjacent vertices thereof have non-zero labels and no two adjacent vertices thereof have zero labels and further wherein the number of zero labels is maximized, the consistent condition being established by defining a connection supporting graph G_(b) whose vertices are those of the faces having two adjacent vertices whose labels are zero, selecting a vertex from G_(b), redefining the selected vertex label to 1, updating G_(b), and repeating the process until the connection supporting graph contains no further vertices; performing a balanced Catmull-Clark subdivision step on any face having two or more nonzero vertex labels; performing an unbalanced Catmull-Clark subdivision step on any face having only one vertex with zero label; and computing new vertices from the results of the balanced and unbalanced Catmull-Clark subdivision steps to generate at least one new face defining the adaptively refined mesh structure. 